<?php
/**
 * Created by PhpStorm.
 * User: GZJ
 * Date: 2017/5/18
 * Time: 10:43
 */

/*公共函数
*/


function makeAlipayBut($orderId,$butName = '支付宝支付'){

    return require('../../../alipay/alipayapi.php');
}



    /************************** 封装一个函数 把地址栏的某一个参数给去掉之后的地址********************************/
     function filterUrl($param){
        //先获取当前地址     $_SERVER['PHP_SELF'] 取出当前地址栏地址
        $url = $_SERVER['PHP_SELF'];
        //正则去掉某一个参数
         $re ="/\/$param\/[^\/]+/";
         return preg_replace($re,'',$url);
    }





/**********使用一个表中的数据制作下拉列表框********************/
//需要以下4个参数：
//                1.用哪个表中的数据   2.下拉框提交的name值是什么 3.option的value值（id）  4.option的文本 <option>这里的文本</option>
//                5.最后一个哪一个是选中的 默认是空的
function buildselect($table,$selectName,$valueFieldName,$textFieldName,$selectedValue=''){

    $Model = D($table);
    $data = $Model->field("$valueFieldName,$textFieldName")->select();
    $select = "<select name='$selectName'><option value=''>请选择</option>";
    foreach($data as $v){
        $value = $v[$valueFieldName];
        $text = $v[$textFieldName];

        /*******如果selectedvalue的值 即id 等于传过来的id（关联表的id） 并且不为空*******/
        if($selectedValue && $selectedValue==$value){

            $selected = 'selected ="selected"';
        }
        $select.='<option '.$selected.'value="'.$value.'">'.$text.'</option>';
    }
    $select.="</select>";
    echo $select;
}


//性能低 有选择的过滤
function removeXss($data){
//    require_once  '../HtmlPurifier/HTMLPurifier.auto.php';
    require_once './library/HTMLPurifier.auto.php';
    $_clean_xss_config = HTMLPurifier_Config::createDefault();
    $_clean_xss_config->set('Core.Encoding', 'UTF-8');
    //设置要保留的标签
    $_clean_xss_config->set('HTML.Allowed','div,b,strong,i,em,a[href|title],ul,ol,li,p[style],br,span[style],img[width|height|alt|src]');
    $_clean_xss_config->set('CSS.AllowedProperties', 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align');
    $_clean_xss_config->set('HTML.TargetBlank', TRUE);
    $_clean_xss_obj = new HTMLPurifier($_clean_xss_config);
    //执行过滤
      return $_clean_xss_obj->purify($data);

}



/******************显示图片*******************/
function showImage($url,$width='',$height=''){                          //此函数 在视图层的所有html要显示图片的地方调用
    if($width){$width = "width='$width'";}
    if($height){$height = "height='$height''";}            //设置图片高度
    $ur = C('IMAGE_CONFIG');                         //大C函数自己找到在配置文件里的数组
    echo"<img $width $height src='{$ur['viewPath']}$url'/>";      //设置高度
//    echo"<img src=".$ur['viewPath'].$url.">";         //这里双引号注意解析
}





/************删除图片 ****************************/
function deleteImage($image = array())      //也可以是一个变量  在查询的时候使用select 查出的是二维数组
//  当然用field（字段名.....）->find(id)；这里省去where！ 针对性的查找 更轻便 简洁
{
    $savePath = C('IMAGE_CONFIG');
    foreach ($image as $v)
    {
        unlink($savePath['rootPath'] . $v);            //删除硬盘对应路径的图片
    }
}





/**
 * 上传图片并生成缩略图
 * 用法：
 * $ret = uploadOne('logo', 'Goods', array(
array(600, 600),
array(300, 300),
array(100, 100),
));
返回值：
if($ret['ok'] == 1)
{
$ret['images'][0];   // 原图地址
$ret['images'][1];   // 第一个缩略图地址
$ret['images'][2];   // 第二个缩略图地址
$ret['images'][3];   // 第三个缩略图地址
}
else
{
$this->error = $ret['error'];
return FALSE;
}
 *
 */
function uploadOne($imgName, $dirName, $thumb = array())
{
    // 上传LOGO  $imgName = 上传id值  $dirName = 二级目录   $thump = 缩略图
    if(isset($_FILES[$imgName]) && $_FILES[$imgName]['error'] == 0)
    {
        $ic = C('IMAGE_CONFIG');     //获取配置文件该数组信息
        $upload = new \Think\Upload(array(
            'rootPath' => $ic['rootPath'], //保存地址
            'maxSize' => $ic['maxSize'],//最大上传限制
            'exts' => $ic['exts'],         //允许上传的格式
        ));// 实例化上传类
        $upload->savePath = $dirName . '/'; // 图片二级目录的名称
        // 上传文件
        // 上传时指定一个要上传的图片的名称，否则会把表单中所有的图片都处理，之后再想其他图片时就再找不到图片了
        $info   =   $upload->upload(array($imgName=>$_FILES[$imgName]));
        if(!$info)
        {
            return array(
                'ok' => 0,           //设置一个信息是否生成缩略图
                'error' => $upload->getError(),
            );
        }
        else
        {
            $ret['ok'] = 1;
            $ret['images'][0] = $logoName = $info[$imgName]['savepath'] . $info[$imgName]['savename'];    //赋值 暂存的路径和图片名称拼接在一起 组成新的名字
            // 判断是否生成缩略图
            if($thumb)
            {
                $image = new \Think\Image();
                // 循环生成缩略图
                foreach ($thumb as $k => $v)
                {
                    $ret['images'][$k+1] = $info[$imgName]['savepath'] . 'thumb_'.$k.'_' .$info[$imgName]['savename'];
                    // 打开要处理的图片
                    $image->open($ic['rootPath'].$logoName);
                    $image->thumb($v[0], $v[1])->save($ic['rootPath'].$ret['images'][$k+1]);
                }
            }
            return $ret;
        }
    }
}



